package com.sira.ttr_cmd;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JFrame;

import com.sira.textrankresume.Filtro;
import com.sira.textrankresume.IFiltro;
import com.sira.textrankresume.ITextRankResume;
import com.sira.textrankresume.TextRankResume;

public class ttr_cmd {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String nombreFichero = "";
		String path  = "C:\\pruebas";//TODO poder especificar el path a mano! (file chooser) 
		if (args.length < 2 || args[1] == null)
			nombreFichero = "pruebaJUNG2.txt";
		else
			nombreFichero = ""+args[1];
		if (args.length > 2  && args[2] != null)
			path = ""+args[2];
		
		String texto = cargaFichero(nombreFichero, path);
		ITextRankResume trr = new TextRankResume(texto, new Filtro(palabrasANoTenerEnCuenta()));
		System.out.println(trr.toString());
		trr.crearGrafo(0.82f, 2);
		System.out.println(trr.toString());
		
		JFrame principal = new JFrame();
		principal.setBounds(100, 100, 800, 600);
		principal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		principal.setVisible(true);
		DibujadorDeGrafos dibujador =new DibujadorDeGrafos(trr.getGrafo(), principal.getWidth(), principal.getHeight());
		dibujador.setVisible(true);
		principal.add(dibujador);
		
	}
	
	private static List<String> palabrasANoTenerEnCuenta()
	{
		String palabras = "";//"In,and,the,can,to,of,a";
				List<String> lista = new LinkedList<String> (Arrays.asList(palabras.split(",")));
		return lista;
	}

	private static String cargaFichero(String nombreFichero, String path) {
		
		File f = new File(path+"/"+nombreFichero);
		FileReader fr = null;
		BufferedReader br = null;
		String resultado = "";
		String tmp = null;
		
		try {
			fr = new FileReader (f);		
			br = new BufferedReader(fr);
			
			
			
			tmp = br.readLine();
			
			while (tmp != null)
			{
				resultado += "\n"+tmp;				
				tmp = br.readLine();
			}
			
		
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally
		{
			
				try {
					if (fr != null)
					fr.close();
					if (br != null)
					br.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
				
		try {
			if (fr != null)
			fr.close();
			if (br != null)
			br.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
			
		return resultado;
	}

}
